package com.cskaoyan.javase.oop1._9wrapper;

/**
 * 包装类
 * 一个经典的编译报错: Non-static field 'start' cannot be referenced from a static context
 *      一个静态的(方法)上下文不能去引用一个非静态的成员变量
 *
 * Integer是Java当中的包装类型,它是int的包装类
 * 包装类: Java万物皆对象其实是有例外的,就是基本数据类型,Java不是完全的面向对象语言
 *      为了弥补这一点,所以Java就存在包装类型,将对应的基本数据类型变量包装成一个对象
 *      在包装类中,除了基本的,能够存储值以外,还有一些和该类型相关的常量,以及处理方法
 *      某种程度上，包装类可以看成对应基本数据类型的工具来使用。
 *      包装类型是怎么包装基本数据类型的? 将基本数据类型变量的值，作为对象中的成员变量存储。
 *
 * 包装类型对象和它对应的基本数据类型可以互相转换：
 *      我们把基本数据类型 ---> 包装类型，这个过程称之为"装箱"
 *      包装类型 ---> 基本数据类型，这个过程称之为"拆箱"
 * Java当中的装箱和拆箱是可以自动完成的，在绝大多数场景中，包装类型对象和它对应的基本数据类型变量可以直接互相替代（转换）。称之为"自动装箱和拆箱"
 *
 *
 *
 *
 *
 *
 * @since 11:43
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    static int end = Integer.MAX_VALUE;
    static int start = end - 5;

    public static void main(String[] args) {
        /*
            分析程序,请问输出的结果是什么?
            可能如下:
                5
                6
                7
                8
                9
                10
            实际上结果是死循环
            int类型最大值加上1,结果成为了最小值

         */
        int count = 0;
        for (int i = start; i <= end; i++) {
            count++;
        }
        System.out.println(count);
    }
}
class IntPack{
    int a;

    public IntPack(int a) {
        this.a = a;
    }
}
